package com.qms.qep.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.qms.qep.mapper.ParameterMapper;
import com.qms.qep.domain.Parameter;
import com.qms.qep.service.IParameterService;

/**
 * 参数管理Service业务层处理
 * 
 * @author qms
 */
@Service
public class ParameterServiceImpl implements IParameterService 
{
    @Autowired
    private ParameterMapper parameterMapper;

    /**
     * 查询参数
     * 
     * @param id 参数主键
     * @return 参数
     */
    @Override
    public Parameter selectParameterById(Long id)
    {
        return parameterMapper.selectParameterById(id);
    }

    /**
     * 查询参数列表
     * 
     * @param parameter 参数
     * @return 参数
     */
    @Override
    public List<Parameter> selectParameterList(Parameter parameter)
    {
        return parameterMapper.selectParameterList(parameter);
    }

    /**
     * 新增参数
     * 
     * @param parameter 参数
     * @return 结果
     */
    @Override
    public int insertParameter(Parameter parameter)
    {
        return parameterMapper.insertParameter(parameter);
    }

    /**
     * 修改参数
     * 
     * @param parameter 参数
     * @return 结果
     */
    @Override
    public int updateParameter(Parameter parameter)
    {
        return parameterMapper.updateParameter(parameter);
    }

    /**
     * 批量删除参数
     * 
     * @param ids 需要删除的参数主键
     * @return 结果
     */
    @Override
    public int deleteParameterByIds(Long[] ids)
    {
        return parameterMapper.deleteParameterByIds(ids);
    }

    /**
     * 删除参数信息
     * 
     * @param id 参数主键
     * @return 结果
     */
    @Override
    public int deleteParameterById(Long id)
    {
        return parameterMapper.deleteParameterById(id);
    }
    
    /**
     * 根据产品ID查询参数列表
     * 
     * @param productId 产品ID
     * @return 参数集合
     */
    @Override
    public List<Parameter> selectParametersByProductId(Long productId)
    {
        Parameter parameter = new Parameter();
        parameter.setProductId(productId);
        return parameterMapper.selectParameterList(parameter);
    }
    
    /**
     * 获取参数类型选项
     * 
     * @return 参数类型选项
     */
    @Override
    public List<Map<String, Object>> getParameterTypeOptions()
    {
        List<Map<String, Object>> options = new ArrayList<>();
        
        // 示例参数类型，实际应该从数据库或配置获取
        Map<String, Object> option1 = new HashMap<>();
        option1.put("value", "dimension");
        option1.put("label", "尺寸参数");
        options.add(option1);
        
        Map<String, Object> option2 = new HashMap<>();
        option2.put("value", "electrical");
        option2.put("label", "电气参数");
        options.add(option2);
        
        Map<String, Object> option3 = new HashMap<>();
        option3.put("value", "mechanical");
        option3.put("label", "机械参数");
        options.add(option3);
        
        Map<String, Object> option4 = new HashMap<>();
        option4.put("value", "performance");
        option4.put("label", "性能参数");
        options.add(option4);
        
        Map<String, Object> option5 = new HashMap<>();
        option5.put("value", "other");
        option5.put("label", "其他参数");
        options.add(option5);
        
        return options;
    }
} 